/*************************************************************************
> File Name: doubleReversal.cpp
> Author: icebear
> Mail: 3322366195@qq.com
> Created Time: 2024-01-11 22:06:57
> Description:
189 轮转数组
给定一个整数数组 nums，将数组中的元素向右轮转 k 个位置，其中 k 是非负数。
************************************************************************/

// 思路：
// 反转一次整个数组，再从k分别反转左右两边

#include <vector>
using namespace std;

class Solution
{
public:
    void rotate(vector<int> &nums, int k)
    {
        k %= nums.size();
        reverse(nums.begin(), nums.end());
        reverse(nums.begin(), nums.begin() + k);
        reverse(nums.begin() + k, nums.end());
    }
};
